package controller; /** * The class that helps serialization */ import java.io.*; import java.util.TreeSet; import models.Order; import models.Product; public class InputOutput { private Product[] products; private FileOutputStream fileOut; private ObjectOutputStream out; private FileInputStream fileIn; private ObjectInputStream in; private Warehouse warehouse; private OPDept orderDept; private Order[] orders; public InputOutput() { } public void serializeProducts() { try { warehouse = Warehouse.getInstance(); fileOut = new FileOutputStream("D:\\Java workspace\\Homework2\\Products.ser"); out = new ObjectOutputStream(fileOut); products = warehouse.getAllProducts(); for (Product product : products) { out.writeObject(product); } out.close(); fileOut.close(); } catch (IOException e) { e.getMessage(); } } public TreeSet<Product> deserializeProducts() { TreeSet<Product> readProducts = new TreeSet<Product>(); Product product; try { fileIn = new FileInputStream("D:\\Java workspace\\Homework2\\Products.ser"); in = new ObjectInputStream(fileIn); while (true) { product = (Product) in.readObject(); if (product == null) { break; } readProducts.add(product); } } catch (IOException e) { e.getMessage(); } catch (ClassNotFoundException e) { e.getMessage(); } return readProducts; } public void serializeOrders() { try { orderDept = OPDept.getInstance(); fileOut = new FileOutputStream("D:\\Java workspace\\Homework2\\Orders.ser"); out = new ObjectOutputStream(fileOut); orders = orderDept.getAllOrders(); for (Order order : orders) { out.writeObject(order); } out.close(); fileOut.close(); } catch (IOException e) { e.getMessage(); } } public TreeSet<Order> deserializeOrders() { TreeSet<Order> readOrders = new TreeSet<Order>(); Order order; try { fileIn = new FileInputStream("D:\\Java workspace\\Homework2\\Orders.ser"); in = new ObjectInputStream(fileIn); while (true) { order = (Order) in.readObject(); if (order == null) { break; } readOrders.add(order); } } catch (IOException e) { e.getMessage(); } catch (ClassNotFoundException e) { e.getMessage(); } return readOrders; } }